package cc.rengu.oltp.service.realize;

import cc.rengu.oltp.service.common.entity.SysParam;
import cc.rengu.oltp.service.model.MonitorMode;
import cc.rengu.oltp.service.model.MonitorModelInfo;
import cc.rengu.oltp.service.model.TransMonitorInfo;

import java.util.List;

/**
 * 交易监控服务组件
 * Created by 王成 on 2020/2/11
 */
public interface TransMonitorService {
    /**
     * 发布交易监控信息到缓存Redis
     */
    void publishTransMonitorInfo();

    /**
     * 从缓存Redis中订阅交易监控信息
     *
     * @param monitorMode 监控模式
     * @return 交易监控信息
     */
    List<TransMonitorInfo> subscribeTransMonitorInfo(MonitorMode monitorMode) throws Exception;

    /**
     * 获取交易监控模型数据
     *
     * @param sysParamList 交易监控模型参数
     * @return 交易监控推送数据
     */
    List<MonitorModelInfo> getMonitorModelData(List<SysParam> sysParamList) throws Exception;
}
